/**
 * \file flashMemory.h
 * \brief Header du driver du controleur mémoire flash.
 * \author {Mengxuan.Z Nicolas.M}
 * \version 0.6
 * \date 12 mars 2011
 *
 * Implémentation des APIs pour lire et écrire
 * dans la mémoire flash
 * 
 * \test On test l'écriture à un emplacement de la flash puis on regarde 
 * si on réussi à lire la veleur écrite. On vérifie grace au debugeur
 *
 */

 
#ifndef H_FLASH
#define H_FLASH

/**
 * \fn void writeUINT (char* addr, unsigned int data)
 * \brief Ecrire un int à une adresse donnée
 *
 * \param addr adress où écrire la donnée
 * \param data le int à écrire
 */
void writeUINT (char* addr, unsigned int data);

/**
 * \fn unsigned int readUINT(char* addr)
 * \brief Lire un int à une adresse donnée
 *
 * \param addr adress où lire la donnée
 * \return le int enregistré dans l'adresse
 */
unsigned int readUINT(char* addr);

/**
 * \fn void write_flashMemory (char* addr,char* value,unsigned int size)
 * \brief Ecrire une chaine de caractères à partir d'une adresse donnée
 *
 * \param addr adress où écrire la chaine
 * \param value la chaine de caractères à écrire
 * \param size le nombre de caractères dans la chaine
 */
void write_flashMemory (char* addr,char* value,unsigned int size); 

/**
 * \fn char read_flashMemory(char* addr)
 * \brief Lire un caractère à une adresse donnée
 *
 * \param addr adress où lire le caractère
 * \return le caractère 
 */
char read_flashMemory(char* addr);

/**
 * \fn void clean_flashMemory(void)
 * \brief Effacer les données dans la memoire flash
 * 
 */
void clean_flashMemory(void);

#endif
